#include <QCoreApplication>
#include <QDebug>
#include "Ini.h"
#include "mIni.h"

static void Ini_test(void)
{
    static char buf[1024*10];
    char KeyVal[64];
    struct ini_Parse Ini = {
                //.path = "ServerConfig.cfg",
                .text = buf,
                .tsize = sizeof(buf),
                .pos = 0,
                .tlen = 0,
    };
    memset(buf, 0, sizeof(buf));
    memset(KeyVal, 0, sizeof(KeyVal));
    ini_list_empty(&Ini);
    //ini_list_samples(&Ini);
    ini_update_item(&Ini, "Test", "Version", INI_FW_VER);
    ini_update_item(&Ini, "AppName", "KeyName", "\"%s\" ", "0x12345678");
    ini_update_item(&Ini, "AppName2", "KeyNam2", "0x%02X", 0x12345678);
    ini_update_item(&Ini, "AppName2", "  int", "%s ", "12345678");
    ini_get_section_key_value(&Ini, "AppName2", "int", KeyVal);
    ini_update_int(&Ini, "AppName2", "int", 678);
    printf("\r\n\r\n[%s--%d] ", __func__, __LINE__);
    printf("[%s--%d] Ini:\r\n%s \r\n", __func__, __LINE__, buf);
    printf("[%s--%d] KeyVal:%s \r\n", __func__, __LINE__, KeyVal);
    printf("[%s--%d] KeyVal:%d \r\n", __func__, __LINE__, ini_get_int(&Ini, "AppName2", "int", 0));
    printf("[%s--%d] KeyNam2:0x%02X \r\n", __func__, __LINE__, ini_get_hex(&Ini, "AppName2", "KeyNam2", 0x00));

}
static void mIni_test(void)
{
    static char Ini[1024*10];
    const uint16_t iSize = sizeof(Ini);
    char KeyVal[64];
    memset(Ini, 0, sizeof(Ini));
    memset(KeyVal, 0, sizeof(KeyVal));
    mIni_list_empty(Ini, iSize);
    //ini_list_samples(&Ini);
    mIni_update_item(Ini, iSize, "Test", "Version", INI_FW_VER);
    mIni_update_item(Ini, iSize, "AppName", "KeyName", "\"%s\" ", "0x12345678");
    mIni_update_item(Ini, iSize, "AppName2", "KeyNam2", "0x%02X", 0x12345678);
    mIni_update_item(Ini, iSize, "AppName2", "  int", "%s ", "12345678");
    mIni_get_section_key_value(Ini, iSize, "AppName2", "int", KeyVal);
    mIni_update_int(Ini, iSize, "AppName2", "int", 678);
    printf("\r\n\r\n[%s--%d] ", __func__, __LINE__);
    printf("[%s--%d] Ini:\r\n%s \r\n", __func__, __LINE__, Ini);
    printf("[%s--%d] KeyVal:%s \r\n", __func__, __LINE__, KeyVal);
    printf("[%s--%d] KeyVal:%d \r\n", __func__, __LINE__, mIni_get_int(Ini, iSize, "AppName2", "int", 0));
    printf("[%s--%d] KeyNam2:0x%02X \r\n", __func__, __LINE__, mIni_get_hex(Ini, iSize, "AppName2", "KeyNam2", 0x00));

}

int main(int argc, char *argv[])
{
    (void)argc;
    (void)argv;
    //QCoreApplication a(argc, argv);
    Ini_test();
    mIni_test();
    //return a.exec();
}

